package gui.gestion.forms;

import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
import objetosNegocio.Proveedor;

public class ProveeForm extends JPanel{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JTextField idProveedor;
	private JTextField nombre;
	private JTextField cif;
	private JTextField comentarios;
	private JCheckBox activo;
	private JTextField telefono;
	private JTextField email;
	private JTextField direccion;
	private JTextField poblacion;
	private JTextField codPostal;
	
	/**
	 * Default constructor
	 */
	public ProveeForm(){
		this.setBorder(new TitledBorder("Proveedor"));
		this.setLayout(new GridLayout(10,2));
		this.setMinimumSize(new Dimension(350,370));
		this.setPreferredSize(new Dimension(350,370));
		buildProveeForm();
		
	}

	/**
	 * Builds the form
	 */
	private void buildProveeForm() {
		JLabel l = new JLabel("ID", JLabel.TRAILING);
        this.add(l);
        idProveedor = new JTextField(10);
        idProveedor.setEditable(false); //No debe poder ser modificado
        l.setLabelFor(idProveedor);
        this.add(idProveedor);
        
		JLabel l2 = new JLabel("Nombre", JLabel.TRAILING);
        this.add(l2);
        nombre = new JTextField(80);
        l2.setLabelFor(nombre);
        this.add(nombre); 
        
		JLabel l3 = new JLabel("CIF", JLabel.TRAILING);
        this.add(l3);
        cif = new JTextField(80);
        l3.setLabelFor(cif);
        this.add(cif);        
        
		JLabel l4 = new JLabel("Comentarios", JLabel.TRAILING);
        this.add(l4);
        comentarios = new JTextField(100);
        l4.setLabelFor(comentarios);
        this.add(comentarios);          
        
        JLabel l5 = new JLabel("Activo ?", JLabel.TRAILING);
        this.add(l5);
        activo = new JCheckBox();
        l5.setLabelFor(activo);
        this.add(activo);
        
        JLabel l6 = new JLabel("Telefono", JLabel.TRAILING);
        this.add(l6);
        telefono = new JTextField(15);
        l6.setLabelFor(telefono);
        this.add(telefono);
        
        JLabel l7 = new JLabel("Email", JLabel.TRAILING);
        this.add(l7);
        email = new JTextField(50);
        l7.setLabelFor(email);
        this.add(email);
        
        JLabel l8 = new JLabel("Direccion", JLabel.TRAILING);
        this.add(l8);
        direccion = new JTextField(15);
        l8.setLabelFor(direccion);
        this.add(direccion);
        
        JLabel l9 = new JLabel("Poblacion", JLabel.TRAILING);
        this.add(l9);
        poblacion = new JTextField(15);
        l9.setLabelFor(poblacion);
        this.add(poblacion);
        
        JLabel l10 = new JLabel("Codigo Postal", JLabel.TRAILING);
        this.add(l10);
        codPostal = new JTextField(10);
        l10.setLabelFor(codPostal);
        this.add(codPostal);
		
	}
	
	/**
	 * Fills the form with proveedor info
	 * @param cli
	 */
	public void fillProvForm(Proveedor prov){
		this.activo.setSelected(prov.getActivo());
        this.cif.setText(prov.getCif());
        this.comentarios.setText(prov.getComentarios());
		this.idProveedor.setText(Integer.toString(prov.getIdProveedor()));
		this.nombre.setText(prov.getNombre());
     	this.codPostal.setText(prov.getCodPostal());
		this.direccion.setText(prov.getDireccion());
		this.email.setText(prov.getEmail());
		this.poblacion.setText(prov.getPoblacion());
		this.telefono.setText(prov.getTelefono());
		
	}
	
	/**
	 * Retrieves a Proveedor object with the info from the form
	 * @return
	 */
	public Proveedor getProvObject(){
		Proveedor ret = new Proveedor();
		try{
			ret.setIdProveedor(Integer.parseInt(this.idProveedor.getText()));	
		}catch (NumberFormatException e){}
	
		if(this.activo.getSelectedObjects() != null)	ret.setActivo(true);
		else												ret.setActivo(false);
		ret.setCif(this.cif.getText());
		ret.setComentarios(this.comentarios.getText());
		ret.setNombre(this.nombre.getText());
		ret.setCodPostal(this.codPostal.getText());
		ret.setDireccion(this.direccion.getText());
		ret.setEmail(this.email.getText());
		ret.setPoblacion(this.poblacion.getText());
		ret.setTelefono(this.telefono.getText());
		
		return ret;
	}

	
}
